/**
 * @filename:CapitalTypeService 2023-4-20
 * @project Wonder Java前后台分离框架  1.1.0
 * Copyright(c) 2022 Wonder Co. Ltd.
 * All right reserved.
 */
package com.wonder.app.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wonder.app.domain.MoldAndInspect;
import com.wonder.app.domain.MoldInspect;
import com.wonder.app.domain.MoldMaterial;
import com.wonder.app.request.MoldAndInspectRequest;
import com.wonder.app.request.MoldInspectRequest;

import java.util.Map;

/**
 * @Description:TODO(模具链类型服务层)
 * @version: 1.1.0
 * @author: Wonder
 *
 */
public interface MoldInspectService extends IService<MoldInspect>{
    /**
     * 验证模具链类型信息
     *
     * @param moldInspect
     * @param type
     * @return 结果
     */
    public String validate(MoldInspect moldInspect,String type);


    /**
     * Description:模具链类型分页返回
     * @param request//检索条件
     * @param page//分页参数
     * @return IPage<CapitalType>   //分页记录
     */
    public IPage<MoldInspect> selectList(MoldInspectRequest request, Page<MoldInspect> page);
    /**
     * 详情Stkotherout
     * @param map
     * @return
     */
    Map<String, Object> getmoldloDetail(Map<String, Object> map);
    /**
     * 创建模具检查单
     * @param userName
     * @param moldMaterial
     * @return
     */
    boolean createInspect(String userName, MoldMaterial moldMaterial);

    /**
     * 修改检查单状态
     * @param userName
     * @param map
     * @return
     */
    boolean updateStatus(String userName, Map<String, Object> map);

    /**
     * 检查单领用模具
     * @param userName
     * @param map
     * @return
     */
    boolean moldInspectPickmold(String userName,Map<String, Object> map) throws Exception;

    /**
     * 判断能否大修小修
     * @param map
     * @return
     */
    boolean checkMainTen(Map<String,Object> map);

    /**
     * 检验单生成维修或报废单
     * @param userName
     * @param map
     * @return
     */
    boolean scrapOrMaintence(String userName,Map<String, Object> map);

    Map<String, Object> getMoldInspectList(Map<String, Object> map) throws Exception;

    Map<String, Object> getMoldInspectDetail(Map<String, Object> map, Long user_id) throws Exception;


    Boolean auditMoldInspect(Long user_id, String userName, Map<String, Object> map)throws Exception;

    /**
     * 创建收料同通知单(web端)
     * @param userName
     * @param map
     * @return
     */
    Boolean createMoldInspect(String userName, Map<String, Object> map);
}
